home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / expldotballs.lha / explosion.S < prev    next >
Encoding:
Text File  |  1990-09-13  |  19.5 KB  |  871 lines

  1.     section lame,code_c
  2.  
  3.  
  4. DATEN=$30000
  5.  
  6. >EXTERN"df0:data",daten
  7.  
  8. ;Trax of Falcon 1991
  9.  
  10. Trap_vec0  = $80
  11. Execbase   = $4
  12. Oldopen    = -$198
  13. Intenar    = $01c
  14. Intena     = $09a
  15. Dmaconr    = $002
  16. Dmacon     = $096
  17. Cop1lch    = $080
  18. Copjmp1    = $088
  19. Vposr      = $004
  20.  
  21. go:    Move.l    #Start,$80.w    ; Trap vector 0
  22.     Trap    #0        ; Execute trap 0 to give full control of the
  23.     Rts            ; 68000, needs an RTE to return.
  24.  
  25. Start:
  26.     LEA    $60000,A0
  27.     LEA    $7F800,A1
  28. CLR0:    CLR.L    (A0)+
  29.     CMP.L    A0,A1
  30.     BNE.S    CLR0
  31.     
  32.     LEA    $DFF000,A5
  33. LOOP:    MOVE.L    $0004(A5),D0
  34.     LSR.L    #8,D0
  35.     CMP.W    #$012A,D0
  36.     BNE.S    LOOP
  37.  
  38.     bsr.S    KillSys
  39.     bsr.L    main
  40.     bsr.S    setupsys
  41.  
  42.     Rte        ; Return from exception 
  43.         
  44.  
  45. *****************************************************************************
  46. ;Killsys - Disable operating system and interrupts
  47. *****************************************************************************
  48. Killsys:
  49.     Move.l    $4.w,a6        ; Execbase vector
  50.     Lea    Gfxname(pc),a1    ; Pointer to "graphics.library" into a1
  51.     Jsr    Oldopen(a6)    ; Open this library
  52.     Lea    $dff000,a6    ; Pointer to custom chips
  53.     Move.l    d0,a0        ; Address of the graphics library
  54.     Move.l    38(a0),Sys_copl        ; Remember the System copperlist
  55.     Move    Intenar(a6),Int_set    ; System interrupts
  56.     Move    #$7fff,Intena(a6)    ; Now switch off all interrupts
  57.     Move.l    $6c.w,Vbl_vec        ; System vertical blanking int.
  58.     Move.l    #IRQ,$6c
  59.     Move.w    #$c028,Intena(a6)
  60.     Move    Dmaconr(a6),Dma_set    ; System DMA
  61.     Move    #$7fff,Dmacon(a6)    ; Clear all DMA
  62.     Move    #$87c0,Dmacon(a6)    ; Now set the required DMA channels
  63.  
  64.     Move.l    #COP,Cop1lch(a6)    ; Init. our own copperlist
  65.     Clr    Copjmp1(a6)
  66.  
  67.     Rts
  68.  
  69. Gfxname:        dc.b "graphics.library",0
  70.     Even
  71. *****************************************************************************
  72. ;Sysreturn - Re-enable operating system and interrupts
  73. *****************************************************************************
  74. Setupsys:
  75.     Lea    $dff000,a6
  76.     Move    #$7fff,Intena(a6)    ; Clear all interrupts
  77.     Move.l    Vbl_vec,$6c.w    ; Restore VBL interrupt
  78.     Move    Int_set,d0
  79.     Or    #$c000,d0
  80.     Move    d0,Intena(a6)        ; Restore system interrupts
  81.     Move    #$7fff,Dmacon(a6)
  82.     Move    Dma_set,d0
  83.     Or    #$8200,d0
  84.     Move    d0,Dmacon(a6)        ; Restore system DMA
  85.     Move.l    Sys_copl,Cop1lch(a6)    ; Restore system copperlist
  86.     Clr    Copjmp1(a6)
  87.     Rts
  88.  
  89. Vbl_vec:              dc.l 0
  90. Int_set:              dc.l 0
  91. Dma_set:              dc.l 0
  92. Sys_copl:              dc.l 0
  93.  
  94.  
  95. Main:
  96.  
  97.     ; ROUTINE ;
  98.  
  99.     Btst    #10,$dff016    ; Check the left mouse button
  100.     Bne.s    Main
  101.  
  102. Waitblit:
  103.     Btst    #14,$dff002
  104.     Bne.S    Waitblit
  105.  
  106.     Rts
  107.  
  108. ;Let there be CHAOS !!!
  109.  
  110. IRQ:    MOVEM.L    D0-D7/A0-A6,-(A7)
  111.     LEA    $00DFF000,A5
  112.     LEA    Block(PC),A6        ;DataBlock
  113.  
  114.     BSR.L    MEM1
  115.  
  116.     ADDQ.W    #4,$0016(A6)        ;winkel
  117.     AND.W    #$03FF,$0016(A6)
  118.     ADDQ.W    #4,$0018(A6)
  119.     AND.W    #$03FF,$0018(A6)
  120.     LEA    $00DFF000,A5
  121.  
  122.     MOVE.W    SPEED(PC),D3
  123.     ADD.W    D3,$0026(A6)
  124.     AND.W    #$007F,$0026(A6)
  125.     MOVEQ    #$7F,D0
  126.     SUB.W    $0026(A6),D0
  127.     ADDQ.W    #2,D0
  128.     AND.W    #$007F,D0
  129.     MOVEQ    #$11,D1
  130.     MULU    D0,D1
  131.     LSR.L    #7,D1
  132.     MOVE.W    D1,D2
  133.     LSL.W    #4,D2
  134.     OR.B    D1,D2
  135.     LSL.W    #4,D2
  136.     OR.B    D1,D2
  137.     MOVEQ    #$11,D1
  138.     MULU    D0,D1
  139.     LSR.L    #7,D1
  140.     MOVE.W    D1,D0
  141.     LSL.W    #4,D0
  142.     OR.B    D1,D0
  143.     LSL.W    #4,D0
  144.     OR.B    D1,D0
  145.     LEA    COL1(PC),A1        ;cop
  146.     AND.W    coli(PC),D0
  147.     AND.W    coli(PC),D2
  148.  
  149.     MOVE.W    D0,(A1)
  150.     MOVE.W    D2,4(A1)
  151.     MOVE.W    D2,8(A1)
  152.     CMP.W    #4,$0026(A6)
  153.     BNE.S    QOUT
  154. RETURN:    MOVE.L    COLPOINTER(PC),A0
  155.     CMP.W    #$FFFF,(A0)
  156.     BNE.S    OK
  157.     MOVE.L    #COLTAB,A0
  158. OK:    MOVE.W    (A0)+,COLI
  159.     MOVE.W    (A0)+,SPEED
  160.     MOVE.L    A0,COLPOINTER
  161.  
  162.     MOVE.L    $0012(A6),A0
  163.     MOVE.L    (A0)+,D0
  164.     MOVE.L    (A0)+,D1
  165.     BEQ.S    OUTPENG
  166.     MOVE.L    D0,10(A6)
  167.     MOVE.L    D1,14(A6)
  168.     MOVE.L    A0,$0012(A6)
  169. QOUT:    
  170.  
  171.     MOVE.W    #$0028,$009C(A5)
  172.     MOVEM.L    (A7)+,D0-D7/A0-A6
  173.     RTE    
  174.  
  175. OUTPENG:
  176.     MOVE.L    #PENG,$0012(A6)
  177.      BRA.S    RETURN
  178.  
  179.  
  180. MEM1:    LEA    BLOCK(PC),A6
  181.     LEA    $00DFF000,A5
  182.     LEA    POINTER(PC),A4
  183.     MOVEQ    #15,D2
  184.     MOVE.W    2(A6),D0
  185.     MOVE.W    D0,D1
  186.     ADD.W    D0,D0
  187.     ADD.W    D0,D0
  188.     ADDQ.W    #1,D1
  189.     AND.W    #3,D1
  190.     MOVE.W    D1,2(A6)
  191.     MOVE.L    0(A4,D0.W),D1
  192.     ADDQ.W    #4,D0
  193.     AND.W    D2,D0
  194.     MOVE.L    0(A4,D0.W),A0
  195.     MOVE.L    A0,-(A7)
  196.     ADDQ.W    #4,D0
  197.     AND.W    D2,D0
  198.     MOVE.L    0(A4,D0.W),A0
  199.     LEA    POS1(PC),A1
  200.     MOVE.W    #$2A01,(A1)
  201.     LEA    POS2(PC),A1
  202.     MOVE.L    #$FFDFFFFE,(A1)+
  203.     MOVE.W    #$2801,(A1)+
  204.     MOVE.L    10(A6),D0
  205.     MOVE.L    D0,D2
  206.     ASR.L    #3,D2
  207.     ADD.L    D2,D1
  208.     AND.L    #15,D0
  209.     EOR.W    #15,D0
  210.     MOVE.W    D0,D3
  211.     ASL    #4,D3
  212.     ADD.W    D3,D0
  213.     LEA    POS03(PC),A1
  214.     MOVE.W    D0,(A1)
  215.     MOVE.L    14(A6),D0
  216.     BEQ.S    COPPPP
  217.     BMI.S    MINUS
  218.     MOVE.L    D0,D2
  219.     ASL.L    #7,D0
  220.     ADD.L    D0,D1
  221.     SUB.L    #$00000100,D2
  222.     NEG.L    D2
  223.     ADD.L    #$00000029,D2
  224.     CMP.L    #$000000FF,D2
  225.     BLE.S    LESS
  226.     SUB.L    #$00000100,D2
  227.     LSL.W    #8,D2
  228.     ADDQ.W    #1,D2
  229.     LEA    POS2(PC),A1
  230.     MOVE.L    #$FFDFFFFE,(A1)+
  231.     MOVE.W    D2,(A1)+
  232.     BRA.S    COPPPP
  233.  
  234. LESS:    LSL.W    #8,D2
  235.     ADDQ.W    #1,D2
  236.     LEA    POS2(PC),A1
  237.     MOVE.L    #$01900000,(A1)+
  238.     MOVE.W    D2,(A1)+
  239.     BRA.S    COPPPP
  240.  
  241. MINUS:    MOVE.L    D0,D2
  242.     NEG.L    D2
  243.     ADD.L    #$00000029,D2
  244.     LSL.W    #8,D2
  245.     ADDQ.W    #1,D2
  246.     LEA    POS1(PC),A1
  247.     MOVE.W    D2,(A1)
  248. COPPPP:    LEA    POS5(PC),A1
  249.     ADD.L    #12,D1
  250.     MOVE.W    D1,6(A1)
  251.     SWAP    D1
  252.     MOVE.W    D1,2(A1)
  253.     SWAP    D1
  254.     ADD.L    #$00000040,D1
  255.     MOVE.W    D1,14(A1)
  256.     SWAP    D1
  257.     MOVE.W    D1,10(A1)
  258.     SWAP    D1
  259.     LEA    $00DFF000,A5
  260. BWAIT:    BTST    #14,2(A5)
  261.     BNE.S    BWAIT
  262.     LEA    12(A0),A0
  263.     MOVE.L    A0,$0054(A5)
  264.     MOVE.W    #$0018,$0066(A5)
  265.     CLR.W    $0042(A5)
  266.     MOVE.W    #$0100,$0040(A5)
  267.     MOVE.W    #$7F94,$0058(A5)    ;Loeschen der Plane 1&2
  268.     BSR.S    MEM2
  269.     MOVE.L    (A7)+,A5
  270.     BSR.L    MEM3
  271.     RTS    
  272.     
  273.  
  274. MEM2:    LEA    SINLIST(PC),A4        ;Koordtrans. (optimiert)
  275.     LEA    DATEN,A2        ;data
  276.     MOVE.W    $0016(A6),D0
  277.     MOVE.W    $0018(A6),D1
  278.     MOVEM.W    0(A4,D0.W),D2/D3
  279.     MOVEM.W    0(A4,D1.W),D4/D5
  280.     MOVE.W    $0026(A6),D7
  281.     MOVE.L    #$00000080,D1
  282.     MOVEQ    #0,D0
  283.     MOVE.W    D2,D0
  284.     MULS    4(A6),D0
  285.     ASR.L    #6,D0
  286.     MULS    D7,D0
  287.     ASR.L    #7,D0
  288.     ADD.L    D1,D0
  289.     LSL.L    #8,D0
  290.     ADD.L    A2,D0
  291.     MOVE.L    D0,$0080(A6)
  292.     NEG.W    D3
  293.     MOVEQ    #0,D0
  294.     MOVE.W    D3,D0
  295.     MULS    4(A6),D0
  296.     ASR.L    #6,D0
  297.     MULS    D7,D0
  298.     ASR.L    #7,D0
  299.     ADD.L    D1,D0
  300.     LSL.L    #8,D0
  301.     ADD.L    A2,D0
  302.     MOVE.L    D0,$007C(A6)
  303.     MOVEQ    #0,D0
  304.     MOVE.W    D4,D0
  305.     MULS    6(A6),D0
  306.     ASR.L    #6,D0
  307.     MULS    D7,D0
  308.     ASR.L    #7,D0
  309.     ADD.L    D1,D0
  310.     LSL.L    #8,D0
  311.     ADD.L    A2,D0
  312.     MOVE.L    D0,$0078(A6)
  313.     NEG.W    D5
  314.     MOVEQ    #0,D0
  315.     MOVE.W    D5,D0
  316.     MULS    8(A6),D0
  317.     ASR.L    #6,D0
  318.     MULS    D7,D0
  319.     ASR.L    #7,D0
  320.     ADD.L    D1,D0
  321.     LSL.L    #8,D0
  322.     ADD.L    A2,D0
  323.     MOVE.L    D0,$006C(A6)
  324.     MOVE.W    D5,D6
  325.     MULS    D2,D6
  326.     ASR.L    #7,D6
  327.     MOVEQ    #0,D0
  328.     MOVE.W    D6,D0
  329.     MULS    6(A6),D0
  330.     ASR.L    #6,D0
  331.     MULS    D7,D0
  332.     ASR.L    #7,D0
  333.     ADD.L    D1,D0
  334.     LSL.L    #8,D0
  335.     ADD.L    A2,D0
  336.     MOVE.L    D0,$0070(A6)
  337.     MOVE.W    D5,D6
  338.     MULS    D3,D6
  339.     ASR.L    #7,D6
  340.     NEG.L    D6
  341.     MOVEQ    #0,D0
  342.     MOVE.W    D6,D0
  343.     MULS    6(A6),D0
  344.     ASR.L    #6,D0
  345.     MULS    D7,D0
  346.     ASR.L    #7,D0
  347.     ADD.L    D1,D0
  348.     LSL.L    #8,D0
  349.     ADD.L    A2,D0
  350.     MOVE.L    D0,$0074(A6)
  351.     MOVE.W    D3,D6
  352.     MULS    D4,D6
  353.     ASR.L    #7,D6
  354.     MOVEQ    #0,D0
  355.     MOVE.W    D6,D0
  356.     MULS    8(A6),D0
  357.     ASR.L    #6,D0
  358.     MULS    D7,D0
  359.     ASR.L    #7,D0
  360.     ADD.L    D1,D0
  361.     LSL.L    #8,D0
  362.     ADD.L    A2,D0
  363.     MOVE.L    D0,$0068(A6)
  364.     MOVE.W    D4,D6
  365.     MULS    D2,D6
  366.     NEG.L    D6
  367.     ASR.L    #7,D6
  368.     MOVEQ    #0,D0
  369.     MOVE.W    D6,D0
  370.     MULS    8(A6),D0
  371.     ASR.L    #6,D0
  372.     MULS    D7,D0
  373.     ASR.L    #7,D0
  374.     ADD.L    D1,D0
  375.     LSL.L    #8,D0
  376.     ADD.L    A2,D0
  377.     MOVE.L    D0,$0064(A6)
  378.     RTS    
  379.  
  380. MEM3:    MOVE.W    $001A(A6),A1        ;setpoint(x,y)
  381.     MOVE.W    $001E(A6),A3
  382.     LEA    KOORD(PC),A4        
  383.     MOVE.W    #$0121,D7        ;290 Mal
  384.     MOVEQ    #7,D2
  385.     MOVEQ    #-$80,D6
  386. LOOP77:    LEA    $64(A6),A2
  387.     MOVEM.W    (A4)+,D3-D5
  388.     MOVE.L    (A2)+,A0
  389.     MOVE.W    0(A0,D3.W),D0
  390.     MOVE.L    (A2)+,A0
  391.     MOVE.W    0(A0,D4.W),D1
  392.     ADD.W    D1,D0
  393.     MOVE.L    (A2)+,A0
  394.     MOVE.W    0(A0,D5.W),D1
  395.     ADD.W    D1,D0
  396.     BPL.S    ZWQ
  397.     MOVE.L    (A2)+,A0
  398.     MOVE.W    0(A0,D3.W),D0
  399.     MOVE.L    (A2)+,A0
  400.     MOVE.W    0(A0,D4.W),D1
  401.     ADD.W    D1,D0
  402.     MOVE.L    (A2)+,A0
  403.     MOVE.W    0(A0,D5.W),D1
  404.     ADD.W    D1,D0
  405.     ADD.W    A3,D0
  406.     ADD.W    D0,D0
  407.     AND.W    D6,D0
  408.     MOVE.W    D0,D5
  409.     MOVE.L    (A2)+,A0
  410.     MOVE.W    0(A0,D3.W),D0
  411.     MOVE.L    (A2)+,A0
  412.     MOVE.W    0(A0,D4.W),D1
  413.     ADD.W    D1,D0
  414.     ASR.W    #6,D0
  415.     ADD.W    A1,D0
  416.     MOVE.W    D0,D1
  417.     LSR.W    #3,D1
  418.     ADD.W    D1,D5
  419.     EOR.W    D2,D0
  420.     BSET    D0,0(A5,D5.W)
  421.     EOR.W    D2,D0
  422.     EOR.W    #$7FFF,D5
  423.     BSET    D0,0(A5,D5.W)
  424.     DBRA    D7,LOOP77
  425.     RTS    
  426.  
  427. ZWQ:    MOVE.L    (A2)+,A0
  428.     MOVE.W    0(A0,D3.W),D0
  429.     MOVE.L    (A2)+,A0
  430.     MOVE.W    0(A0,D4.W),D1
  431.     ADD.W    D1,D0
  432.     MOVE.L    (A2)+,A0
  433.     MOVE.W    0(A0,D5.W),D1
  434.     ADD.W    D1,D0
  435.     ADD.W    A3,D0
  436.     ADD.W    D0,D0
  437.     AND.W    D6,D0
  438.     MOVE.W    D0,D5
  439.     MOVE.L    (A2)+,A0
  440.     MOVE.W    0(A0,D3.W),D0
  441.     MOVE.L    (A2)+,A0
  442.     MOVE.W    0(A0,D4.W),D1
  443.     ADD.W    D1,D0
  444.     ASR.W    #6,D0
  445.     ADD.W    A1,D0
  446.     MOVE.W    D0,D1
  447.     LSR.W    #3,D1
  448.     ADD.W    D1,D5
  449.     EOR.W    D2,D0
  450.     BSET    D0,$0040(A5,D5.W)
  451.     EOR.W    D2,D0
  452.     EOR.W    #$7FFF,D5
  453.     BSET    D0,$0040(A5,D5.W)
  454.     DBRA    D7,LOOP77
  455.     RTS    
  456.  
  457. POINTER:
  458.         dc.L    $60000,$68000,$70000,$78000    ;Bitplanes
  459.  
  460. COLI:        dc.W    0
  461. SPEED:        dc.W    2
  462. COLPOINTER:
  463.         dc.L    COLTAB
  464.  
  465. COLTAB:
  466.         dc.W    $FF0,1,$00F,2,$0F0,4,$FFF,2,$0FF,1,$F0F,2,$FFF,4,$F00,2
  467.         dc.W    $FFFF
  468.  
  469. COP:        dc.W    $009C,$8010,$008E,$2981,$0090,$29D1
  470.         dc.W    $0092,$0038,$0094,$00D0,$0100,$0600
  471.         dc.W    $0120,$0000,$0122,$0000,$0124,$0000
  472.         dc.W    $0126,$0000,$0128,$0000,$012A,$0000
  473.         dc.W    $012C,$0000,$012E,$0000,$0130,$0000
  474.         dc.W    $0132,$0000,$0134,$0000,$0136,$0000
  475.         dc.W    $0138,$0000,$013A,$0000,$013C,$0000
  476.         dc.W    $013E,$0000
  477. POS1:        dc.W    $2A01,$FFFE
  478.         dc.W    $0100,$2200
  479. POS5:        dc.W    $00E0,$0007,$00E2,$800C,$00E4,$0007,$00E6,$804C
  480.         dc.W    $0108,$0058,$010A,$0058,$0102
  481. POS03:        dc.W    $0000
  482.         dc.W    $0104,$0040,$009C,$8800,$0180,$0000
  483.         dc.W    $0182
  484. COL1:        dc.W    $0999,$0184,$0FFF,$0186,$0FFF
  485. POS2:        dc.W    $FFDF,$FFFE,$2801,$FFFE,$0100,$0200
  486.         dc.W    $FFFF,$FFFE
  487.  
  488.     ;    3C    3E   40   3A    
  489. TAB:
  490.         dc.L    $00000000,$00000032,$FFFF0000,$00000028
  491.         dc.L    $00010000,$00000028,$0000FFFF,$00000028
  492.         dc.L    $00000001,$00000028,$0000FFFF,$00000028
  493.         dc.L    $00000000,$00000032,$FFFF0001,$00000028
  494.         dc.L    $0001FFFF,$00000028,$00000001,$00000028
  495.         dc.L    $00000000,$00000032,$03E70000
  496.  
  497. BLOCK:
  498.     dc.W    $0000
  499.     dc.L    $00000040,$00400040,$00000000,$00000000,PENG
  500.     dc.W    $0000
  501.     dc.L    $00000100,$00001FC0,$00000000,$00000064,$00000000,$00000000
  502.     dc.L    $00000000,$00010000,$00000000,$00000000,$00000000,$00000000
  503.     dc.L    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  504.     dc.L    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  505.     dc.L    $00000000,$00000000,$00000000,$00000000,$00000000,$00000000
  506.  
  507. PENG:    ;Versch. der Planes
  508.     dc.L    $0000000C,$00000032,$00000064,$FFFFFFE7
  509.     dc.L    $FFFFFFE9,$FFFFFFFE,$FFFFFFB2,$0000000C
  510.     dc.L    $0000000C,$FFFFFFFE,$00000064,$FFFFFFE7
  511.     dc.L    $00000032,$FFFFFFE9,$00000000,$00000000
  512.  
  513. KOORD:    ;         x     y     z
  514.     ;------------------------
  515.         dc.W    $0092,$00CC,$001C
  516.         dc.W    $0038,$00E2,$0060
  517.         dc.W    $0094,$0020,$002E
  518.         dc.W    $001A,$004A,$0048
  519.         dc.W    $007C,$00DE,$002C
  520.         dc.W    $00A8,$00E2,$003E
  521.         dc.W    $0048,$0012,$009C
  522.         dc.W    $00CC,$0036,$003A
  523.         dc.W    $0038,$0026,$00B4
  524.         dc.W    $00E4,$0052,$00BA
  525.         dc.W    $00B8,$00A2,$0014
  526.         dc.W    $00CE,$0038,$003C
  527.         dc.W    $007E,$00D2,$00DE
  528.         dc.W    $00EC,$00A2,$004A
  529.         dc.W    $0098,$00FA,$007A
  530.         dc.W    $004C,$0098,$00F0
  531.         dc.W    $0098,$0038,$001A
  532.         dc.W    $0048,$00BC,$0020
  533.         dc.W    $007E,$00DC,$00D4
  534.         dc.W    $00B8,$007E,$00EE
  535.         dc.W    $0036,$00DE,$005A
  536.         dc.W    $0038,$003A,$00CC
  537.         dc.W    $0024,$0084,$00D6
  538.         dc.W    $002C,$0062,$00D8
  539.         dc.W    $0068,$0004,$0072
  540.         dc.W    $0022,$00A6,$0034
  541.         dc.W    $00D0,$0062,$00DC
  542.         dc.W    $009C,$005E,$00F6
  543.         dc.W    $002C,$00B0,$002E
  544.         dc.W    $00DE,$0038,$00A8
  545.         dc.W    $003C,$007C,$0014
  546.         dc.W    $00CA,$00AC,$00DA
  547.         dc.W    $0080,$0048,$000E
  548.         dc.W    $0066,$0080,$00FA
  549.         dc.W    $003E,$0018,$00A0
  550.         dc.W    $00BC,$00DA,$0040
  551.         dc.W    $007C,$0044,$00EE
  552.         dc.W    $008C,$00E0,$0030
  553.         dc.W    $00D2,$003A,$003C
  554.         dc.W    $002E,$0020,$006C
  555.         dc.W    $00EE,$006A,$00B8
  556.         dc.W    $006C,$0006,$00A0
  557.         dc.W    $00BE,$0038,$00D2
  558.         dc.W    $00A6,$00F6,$008C
  559.         dc.W    $00FC,$0078,$0074
  560.         dc.W    $00BC,$00EC,$006C
  561.         dc.W    $0022,$00B4,$003E
  562.         dc.W    $00CC,$00C4,$0038
  563.         dc.W    $0094,$00E2,$0034
  564.         dc.W    $00CC,$00E2,$008E
  565.         dc.W    $0036,$0020,$0058
  566.         dc.W    $00A2,$0038,$00E2
  567.         dc.W    $00D6,$0026,$006E
  568.         dc.W    $0036,$0030,$0040
  569.         dc.W    $0008,$0054,$0074
  570.         dc.W    $0034,$002E,$0044
  571.         dc.W    $00FA,$007E,$0098
  572.         dc.W    $00B8,$00D2,$0034
  573.         dc.W    $0014,$0056,$0048
  574.         dc.W    $000E,$0056,$00A2
  575.         dc.W    $0042,$0046,$00DE
  576.         dc.W    $00E6,$0038,$008E
  577.         dc.W    $00B2,$007E,$00F2
  578.         dc.W    $0046,$00CE,$002E
  579.         dc.W    $00AA,$001C,$003E
  580.         dc.W    $00CC,$0086,$001C
  581.         dc.W    $0082,$0004,$0060
  582.         dc.W    $0076,$0004,$0096
  583.         dc.W    $000A,$0050,$0078
  584.         dc.W    $00BA,$003C,$00D6
  585.         dc.W    $00C6,$0072,$00E6
  586.         dc.W    $00DE,$004C,$00C0
  587.         dc.W    $00E8,$006A,$00C2
  588.         dc.W    $0088,$00CA,$00E4
  589.         dc.W    $00CA,$003E,$0032
  590.         dc.W    $004A,$00B8,$00E2
  591.         dc.W    $003C,$00C8,$00CC
  592.         dc.W    $0076,$002A,$0022
  593.         dc.W    $000C,$0052,$0098
  594.         dc.W    $0064,$00E0,$00CA
  595.         dc.W    $002C,$006E,$0022
  596.         dc.W    $0098,$0006,$009A
  597.         dc.W    $00FC,$006E,$0078
  598.         dc.W    $001C,$0094,$00CA
  599.         dc.W    $0064,$0034,$00E0
  600.         dc.W    $008E,$00BC,$0012
  601.         dc.W    $00CA,$0038,$00C8
  602.         dc.W    $00CE,$00CC,$00BC
  603.         dc.W    $00F8,$009E,$0094
  604.         dc.W    $00D2,$0044,$0034
  605.         dc.W    $0084,$006C,$0002
  606.         dc.W    $0096,$0028,$0026
  607.         dc.W    $00B2,$0020,$003E
  608.         dc.W    $0050,$00EE,$0056
  609.         dc.W    $00C6,$0038,$00CC
  610.         dc.W    $0030,$0038,$00C4
  611.         dc.W    $0036,$00CE,$00C0
  612.         dc.W    $001C,$0048,$00B6
  613.         dc.W    $00B2,$00DC,$003A
  614.         dc.W    $0048,$00D4,$00CA
  615.         dc.W    $00E0,$003C,$0052
  616.         dc.W    $002C,$0052,$00D2
  617.         dc.W    $00C6,$0090,$00E6
  618.         dc.W    $00C6,$00E6,$006E
  619.         dc.W    $006C,$00D6,$00DA
  620.         dc.W    $00C2,$0030,$00C6
  621.         dc.W    $0066,$0026,$00D4
  622.         dc.W    $0016,$0048,$0052
  623.         dc.W    $0060,$00D8,$002A
  624.         dc.W    $00BE,$0018,$00A4
  625.         dc.W    $00B6,$0012,$00A0
  626.         dc.W    $009A,$00F4,$00A6
  627.         dc.W    $0054,$00D4,$002E
  628.         dc.W    $0070,$00F8,$0062
  629.         dc.W    $0094,$00F8,$0064
  630.         dc.W    $0068,$00F0,$00B2
  631.         dc.W    $003C,$0044,$00D8
  632.         dc.W    $0044,$00D0,$0032
  633.         dc.W    $002A,$00BE,$003A
  634.         dc.W    $00F0,$0052,$009E
  635.         dc.W    $00BE,$00DC,$00B8
  636.         dc.W    $0086,$0098,$0004
  637.         dc.W    $0032,$0044,$00CE
  638.         dc.W    $00E0,$005C,$00C8
  639.         dc.W    $0032,$0054,$0026
  640.         dc.W    $000C,$00A0,$00A8
  641.         dc.W    $00EC,$0054,$00AC
  642.         dc.W    $00F4,$006C,$00AC
  643.         dc.W    $003C,$00D4,$003E
  644.         dc.W    $00A2,$000C,$005A
  645.         dc.W    $00D8,$0058,$0030
  646.         dc.W    $003E,$0014,$008A
  647.         dc.W    $00BA,$0040,$00DA
  648.         dc.W    $00D4,$00A2,$00D4
  649.         dc.W    $0012,$0044,$0090
  650.         dc.W    $007E,$0060,$00FA
  651.         dc.W    $00E6,$003C,$009A
  652.         dc.W    $0084,$0052,$000A
  653.         dc.W    $00AC,$003A,$0020
  654.         dc.W    $00C0,$001C,$00AA
  655.         dc.W    $0014,$0072,$00C0
  656.         dc.W    $007A,$00B8,$000E
  657.         dc.W    $00F2,$008C,$0050
  658.         dc.W    $0052,$00A2,$00F0
  659.         dc.W    $0012,$0040,$0078
  660.         dc.W    $0054,$00F2,$0062
  661.         dc.W    $00A2,$00DA,$00CE
  662.         dc.W    $0014,$005C,$00B6
  663.         dc.W    $007E,$00CE,$00E2
  664.         dc.W    $00B0,$00A2,$00EE
  665.         dc.W    $00F6,$0098,$0060
  666.         dc.W    $005C,$003E,$0018
  667.         dc.W    $0004,$008E,$0066
  668.         dc.W    $001C,$009C,$00C8
  669.         dc.W    $0028,$00D6,$009A
  670.         dc.W    $0032,$0088,$00E2
  671.         dc.W    $0098,$001C,$00C8
  672.         dc.W    $00C8,$00E2,$009A
  673.         dc.W    $0054,$00E0,$00C2
  674.         dc.W    $006E,$006E,$0004
  675.         dc.W    $008E,$00A4,$00F6
  676.         dc.W    $0038,$007E,$0016
  677.         dc.W    $0048,$0088,$000E
  678.         dc.W    $009E,$0086,$00F8
  679.         dc.W    $002A,$00AA,$002C
  680.         dc.W    $00BA,$0022,$00BC
  681.         dc.W    $0050,$00CE,$00D6
  682.         dc.W    $00FC,$0074,$007E
  683.         dc.W    $0074,$00D8,$00D8
  684.         dc.W    $0024,$00D6,$0088
  685.         dc.W    $0044,$00CC,$002E
  686.         dc.W    $00D4,$0072,$00DC
  687.         dc.W    $00C4,$00E8,$0082
  688.         dc.W    $009C,$0014,$00BC
  689.         dc.W    $00BA,$00E2,$00B2
  690.         dc.W    $0022,$00A8,$00CA
  691.         dc.W    $00BC,$0084,$0012
  692.         dc.W    $00B4,$00D4,$0034
  693.         dc.W    $00A0,$00F8,$0078
  694.         dc.W    $0086,$0054,$00F6
  695.         dc.W    $0034,$0056,$00DC
  696.         dc.W    $00C2,$003A,$00D0
  697.         dc.W    $0046,$005E,$0014
  698.         dc.W    $00BC,$0016,$00A0
  699.         dc.W    $0096,$00C6,$001A
  700.         dc.W    $0016,$004E,$00B0
  701.         dc.W    $0062,$00D8,$002A
  702.         dc.W    $0028,$0090,$0024
  703.         dc.W    $00C6,$00AC,$0022
  704.         dc.W    $0054,$00BC,$00E4
  705.         dc.W    $00C2,$0072,$00E8
  706.         dc.W    $00AC,$00CC,$00D8
  707.         dc.W    $00DA,$00D6,$0084
  708.         dc.W    $0066,$0038,$001A
  709.         dc.W    $00D2,$002E,$004E
  710.         dc.W    $00CE,$00B4,$002C
  711.         dc.W    $009C,$00DC,$00CE
  712.         dc.W    $0014,$00A0,$00BA
  713.         dc.W    $0040,$0026,$0040
  714.         dc.W    $0060,$001E,$0034
  715.         dc.W    $0028,$0028,$009A
  716.         dc.W    $0040,$005C,$00E6
  717.         dc.W    $007C,$002E,$001E
  718.         dc.W    $00EE,$009C,$00B4
  719.         dc.W    $00AC,$0044,$001A
  720.         dc.W    $006E,$00C4,$00E8
  721.         dc.W    $001A,$0040,$00A8
  722.         dc.W    $00BE,$0012,$007E
  723.         dc.W    $0024,$009A,$002C
  724.         dc.W    $004E,$00BA,$001A
  725.         dc.W    $00DC,$00C4,$004E
  726.         dc.W    $0038,$001C,$0060
  727.         dc.W    $00CC,$003C,$00CA
  728.         dc.W    $00C6,$00AA,$0020
  729.         dc.W    $000E,$007A,$00B8
  730.         dc.W    $00A2,$00DE,$00CA
  731.         dc.W    $0062,$00EC,$0048
  732.         dc.W    $00E0,$0084,$002E
  733.         dc.W    $00E2,$0032,$0078
  734.         dc.W    $0066,$00FA,$0074
  735.         dc.W    $008C,$0030,$00E0
  736.         dc.W    $0074,$001E,$002E
  737.         dc.W    $00D6,$0094,$0026
  738.         dc.W    $00B2,$00D6,$00CA
  739.         dc.W    $00D2,$00DE,$0070
  740.         dc.W    $003C,$00D6,$00BE
  741.         dc.W    $00EC,$005A,$00B4
  742.         dc.W    $00DC,$00A4,$00CC
  743.         dc.W    $00D6,$00D6,$009A
  744.         dc.W    $001C,$00A6,$003C
  745.         dc.W    $0016,$0066,$00C0
  746.         dc.W    $007A,$002E,$001E
  747.         dc.W    $0014,$0044,$005E
  748.         dc.W    $0036,$00C8,$00C8
  749.         dc.W    $0012,$0046,$0060
  750.         dc.W    $002E,$00DA,$00A0
  751.         dc.W    $00FA,$0068,$0076
  752.         dc.W    $003A,$003C,$00D0
  753.         dc.W    $00BC,$001C,$004E
  754.         dc.W    $0028,$0028,$0096
  755.         dc.W    $00BC,$0010,$008A
  756.         dc.W    $00B8,$002E,$0032
  757.         dc.W    $008E,$00F0,$0048
  758.         dc.W    $0028,$00A8,$00D0
  759.         dc.W    $001C,$00B2,$00BA
  760.         dc.W    $00DC,$004C,$003C
  761.         dc.W    $00D2,$003C,$00C0
  762.         dc.W    $0014,$003C,$0076
  763.         dc.W    $0086,$0024,$00D6
  764.         dc.W    $00D4,$00D6,$005C
  765.         dc.W    $0032,$001E,$0068
  766.         dc.W    $00A2,$00E8,$0042
  767.         dc.W    $00CA,$00E0,$009A
  768.         dc.W    $00D8,$003A,$00B8
  769.         dc.W    $006C,$00CA,$00E2
  770.         dc.W    $008E,$0002,$0082
  771.         dc.W    $0028,$00BC,$00C2
  772.         dc.W    $0056,$0058,$00F0
  773.         dc.W    $00AE,$0026,$00CC
  774.         dc.W    $0036,$00E6,$007C
  775.         dc.W    $00B4,$0020,$0040
  776.         dc.W    $00B0,$00D8,$00C8
  777.         dc.W    $002E,$00D4,$0052
  778.         dc.W    $0032,$003E,$00CA
  779.         dc.W    $00A4,$001C,$003A
  780.         dc.W    $002A,$003E,$003C
  781.         dc.W    $002A,$00D6,$005C
  782.         dc.W    $00C6,$00C6,$00CA
  783.         dc.W    $00A0,$00AE,$0010
  784.         dc.W    $00BC,$00D2,$00C8
  785.         dc.W    $00EA,$0058,$004A
  786.         dc.W    $0046,$00AE,$0018
  787.         dc.W    $0036,$00AA,$0022
  788.         dc.W    $0050,$00F2,$006E
  789.         dc.W    $00C6,$00CE,$003C
  790.         dc.W    $0016,$005E,$0040
  791.         dc.W    $0040,$0012,$0076
  792.         dc.W    $0034,$002A,$00B8
  793.         dc.W    $00A8,$0028,$00D2
  794.         dc.W    $002A,$00DC,$0070
  795.         dc.W    $00B6,$0040,$0020
  796.         dc.W    $0032,$003A,$0036
  797.         dc.W    $0020,$002C,$007C
  798.         dc.W    $0050,$0020,$003A
  799.         dc.W    $00CC,$0072,$00E2
  800.         dc.W    $0064,$00EC,$0046
  801.         dc.W    $007A,$00C2,$0014
  802.         dc.W    $00B8,$00CA,$00D4
  803.         dc.W    $004C,$00C8,$00D8
  804.         dc.W    $0050,$003C,$00E0
  805.  
  806. SINLIST:     ;as always ..
  807.         dc.L    $007F0000,$007F0003,$007F0006,$007F0009
  808.         dc.L    $007E000C,$007E0010,$007E0013,$007D0016
  809.         dc.L    $007D0019,$007C001C,$007B001F,$007A0022
  810.         dc.L    $007A0025,$00790028,$0078002B,$0076002E
  811.         dc.L    $00750031,$00740033,$00730036,$00710039
  812.         dc.L    $0070003C,$006F003F,$006D0041,$006B0044
  813.         dc.L    $006A0047,$00680049,$0066004C,$0064004E
  814.         dc.L    $00620051,$00600053,$005E0055,$005C0058
  815.         dc.L    $005A005A,$0058005C,$0055005E,$00530060
  816.         dc.L    $00510062,$004E0064,$004C0066,$00490068
  817.         dc.L    $0047006A,$0044006B,$0041006D,$003F006E
  818.         dc.L    $003C0070,$00390071,$00360073,$00340074
  819.         dc.L    $00310075,$002E0076,$002B0078,$00280079
  820.         dc.L    $0025007A,$0022007A,$001F007B,$001C007C
  821.         dc.L    $0019007D,$0016007D,$0013007E,$0010007E
  822.         dc.L    $000D007E,$0009007F,$0006007F,$0003007F
  823.         dc.L    $0000007F,$FFFD007F,$FFFA007F,$FFF7007F
  824.         dc.L    $FFF4007E,$FFF1007E,$FFED007E,$FFEA007D
  825.         dc.L    $FFE7007D,$FFE4007C,$FFE1007B,$FFDE007A
  826.         dc.L    $FFDB007A,$FFD80079,$FFD50078,$FFD20077
  827.         dc.L    $FFD00075,$FFCD0074,$FFCA0073,$FFC70071
  828.         dc.L    $FFC40070,$FFC2006F,$FFBF006D,$FFBC006B
  829.         dc.L    $FFBA006A,$FFB70068,$FFB40066,$FFB20064
  830.         dc.L    $FFB00062,$FFAD0060,$FFAB005E,$FFA9005C
  831.         dc.L    $FFA6005A,$FFA40058,$FFA20055,$FFA00053
  832.         dc.L    $FF9E0051,$FF9C004E,$FF9A004C,$FF980049
  833.         dc.L    $FF960047,$FF950044,$FF930041,$FF92003F
  834.         dc.L    $FF90003C,$FF8F0039,$FF8D0036,$FF8C0034
  835.         dc.L    $FF8B0031,$FF8A002E,$FF88002B,$FF870028
  836.         dc.L    $FF870025,$FF860022,$FF85001F,$FF84001C
  837.         dc.L    $FF830019,$FF830016,$FF820013,$FF820010
  838.         dc.L    $FF82000D,$FF81000A,$FF810006,$FF810003
  839.         dc.L    $FF810000,$FF81FFFD,$FF81FFFA,$FF81FFF7
  840.         dc.L    $FF82FFF4,$FF82FFF1,$FF82FFEE,$FF83FFEA
  841.         dc.L    $FF83FFE7,$FF84FFE4,$FF85FFE1,$FF86FFDE
  842.         dc.L    $FF86FFDB,$FF87FFD8,$FF88FFD5,$FF89FFD3
  843.         dc.L    $FF8BFFD0,$FF8CFFCD,$FF8DFFCA,$FF8EFFC7
  844.         dc.L    $FF90FFC4,$FF91FFC2,$FF93FFBF,$FF95FFBC
  845.         dc.L    $FF96FFBA,$FF98FFB7,$FF9AFFB5,$FF9CFFB2
  846.         dc.L    $FF9EFFB0,$FFA0FFAD,$FFA2FFAB,$FFA4FFA9
  847.         dc.L    $FFA6FFA6,$FFA8FFA4,$FFABFFA2,$FFADFFA0
  848.         dc.L    $FFAFFF9E,$FFB2FF9C,$FFB4FF9A,$FFB7FF98
  849.         dc.L    $FFB9FF97,$FFBCFF95,$FFBEFF93,$FFC1FF92
  850.         dc.L    $FFC4FF90,$FFC7FF8F,$FFC9FF8D,$FFCCFF8C
  851.         dc.L    $FFCFFF8B,$FFD2FF8A,$FFD5FF89,$FFD8FF87
  852.         dc.L    $FFDBFF87,$FFDEFF86,$FFE1FF85,$FFE4FF84
  853.         dc.L    $FFE7FF83,$FFEAFF83,$FFEDFF82,$FFF0FF82
  854.         dc.L    $FFF3FF82,$FFF6FF81,$FFF9FF81,$FFFDFF81
  855.         dc.L    $0000FF81,$0003FF81,$0006FF81,$0009FF81
  856.         dc.L    $000CFF82,$000FFF82,$0012FF82,$0015FF83
  857.         dc.L    $0018FF83,$001CFF84,$001FFF85,$0022FF86
  858.         dc.L    $0025FF86,$0028FF87,$002AFF88,$002DFF89
  859.         dc.L    $0030FF8B,$0033FF8C,$0036FF8D,$0039FF8E
  860.         dc.L    $003CFF90,$003EFF91,$0041FF93,$0044FF95
  861.         dc.L    $0046FF96,$0049FF98,$004BFF9A,$004EFF9C
  862.         dc.L    $0050FF9E,$0053FFA0,$0055FFA2,$0057FFA4
  863.         dc.L    $005AFFA6,$005CFFA8,$005EFFAA,$0060FFAD
  864.         dc.L    $0062FFAF,$0064FFB2,$0066FFB4,$0068FFB7
  865.         dc.L    $0069FFB9,$006BFFBC,$006DFFBE,$006EFFC1
  866.         dc.L    $0070FFC4,$0071FFC7,$0073FFC9,$0074FFCC
  867.         dc.L    $0075FFCF,$0076FFD2,$0077FFD5,$0078FFD8
  868.         dc.L    $0079FFDB,$007AFFDE,$007BFFE1,$007CFFE4
  869.         dc.L    $007CFFE7,$007DFFEA,$007EFFED,$007EFFF0
  870.         dc.L    $007EFFF3,$007FFFF6,$007FFFF9,$007FFFFC
  871.